package com.xique.park.service.service;

import com.xique.park.bean.vo.screen.ScreenTreeVo;
import com.xique.park.bean.vo.screen.ScreenVo;
import com.xique.park.bean.vo.web.parkinfo.ParkBaseInfoVo;

import java.util.List;

/**
 * 地图数据大屏服务接口
 *
 * @author wld
 * @date 2022/3/9 10:04
 */
public interface IScreenService {

    /**
     * 获取地图数据接口
     *
     * @param country    国家编码
     * @param province   省编码
     * @param city       市编码
     * @param district   区县编码
     * @param parkInfoId 项目ID
     * @return 统计信息
     */
    ScreenVo info(Integer country, Integer province, Integer city, Integer district, Long parkInfoId);

    /**
     * 获取区域内的停车场数量、今日收入以及支付方式
     *
     * @param country    国家编码
     * @param province   省编码
     * @param city       市编码
     * @param district   区县编码
     * @param parkInfoId 项目ID
     * @return /
     */
    ScreenVo areaBaseInfo(Integer country, Integer province, Integer city, Integer district, Long parkInfoId);

    /**
     * 查询省市区内的项目
     *
     * @param country  国家编码
     * @param province 省编码
     * @param city     市编码
     * @param district 区县编码
     * @return 省市区内的项目列表
     */
    List<ParkBaseInfoVo> selectParkList(Integer country, Integer province, Integer city, Integer district);

    /**
     * 判断指定区域内是否有项目存在
     *
     * @param country  国家编码
     * @param province 省编码
     * @param city     市编码
     * @param district 区县编码
     * @return /
     */
    List<Integer> selectParkExist(Integer country, Integer province, Integer city, Integer district);

    /**
     * 获取地图显示的级别
     *
     * @return 结果
     */
    ScreenVo selectDisplayLevel();

    /**
     * 获取项目树形结构
     *
     * @return 结果
     */
    ScreenTreeVo selectTree();
}
